package com.xiaobao.service.impl;


import com.xiaobao.mapper.UserInfoMapper;
import com.xiaobao.pojo.UserInfo;
import com.xiaobao.service.UserInfoService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
public class UserInfoServiceImpl implements UserInfoService {
    private final UserInfoMapper userInfoMapper;

    public UserInfoServiceImpl(UserInfoMapper userInfoMapper) {
        this.userInfoMapper = userInfoMapper;
    }

    /**
     * 获取用户信息
     * 此方法通过用户ID从数据库中检索用户信息它使用了事务管理，确保数据的一致性
     *
     * @param id 用户ID，用于标识特定的用户信息
     * @return UserInfo对象，包含所请求用户的详细信息如果找不到用户，则返回null
     */
    @Override
    //@Transactional
    public UserInfo getUserInfo(String id) {
        return userInfoMapper.getUserInfo(id);
    }

    // 修改用户信息
    @Override
    public boolean updateUserInfo(UserInfo userInfo) {
        // 将时间格式修改为YYYY-MM-DD
        userInfo.setBirthday(userInfo.getBirthday().substring(0,10));
        // 调用Mapper层的更新方法，返回更新结果
        return userInfoMapper.UpdateUserInfo(userInfo);
    }

    /**
     * 删除用户信息
     *
     * @param id 用户的唯一标识符
     * @return 删除操作的成功与否，成功返回true，失败返回false
     */
    @Override
    public boolean deleteUserInfo(String id) {
        return userInfoMapper.deleteUserInfo(id);
    }

    /**
     * 添加默认用户信息
     * 当用户首次注册或系统需要为用户设置默认信息时，调用此方法在数据库中添加用户的默认信息
     *
     * @param id 用户ID，用于唯一标识用户
     * @param userName 用户名，显示用户的名称
     */
    @Override
    public void addDefaultUserInfo(String id, String userName) {
        userInfoMapper.addDefaultUserInfo(id, userName);
    }
}
